#pragma once

#ifdef E2D_BUILD_TRANS
#include "e2d/imgui/trans/Editor.h"
#endif
#ifdef E2D_BUILD_RENDER
#include "e2d/imgui/render/Editor.h"
#endif
#ifdef E2D_BUILD_AUDIO
#include "e2d/imgui/audio/Editor.h"
#endif
#ifdef E2D_BUILD_PHYSICS
#include "e2d/imgui/physics/Editor.h"
#endif
#ifdef E2D_BUILD_FUI
#include "e2d/imgui/fui/Editor.h"
#endif


#include "e2d/imgui/impl/Editor.h"

namespace e2d
{
	struct FinalEditor
	{
#ifdef E2D_BUILD_TRANS
		e2d::trans::Editor m_TransEditor;
#endif
#ifdef E2D_BUILD_RENDER
		e2d::render::Editor m_RenderEditor;
#endif
#ifdef E2D_BUILD_AUDIO
		e2d::audio::Editor m_AudioEditor;
#endif
#ifdef E2D_BUILD_PHYSICS
		e2d::physics::Editor m_PhysicsEditor;
#endif
#ifdef E2D_BUILD_FUI
		e2d::fui::Editor m_FuiEditor;
#endif

		e2d::impl::Editor m_ImplEditor;

		bool TryTreeEditEntity(e2d::Entity* entity);

	};
};
